package com.example.demo.controller;


import com.example.demo.enity.Bill;
import com.example.demo.enity.User;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.List;

@Controller
public class LoginExitController {


    @Autowired
    RedisTemplate redisTemplate;


    //将它设为静态的全局变量（方便以后的调用）
    public static String username;


    @GetMapping("/login")
    public String login() {
        return "login";

    }


    @GetMapping("/")
    public String index(Model model) {
        Object o = redisTemplate.opsForValue().get("user");
        ObjectMapper objectMapper = new ObjectMapper();
        User user = objectMapper.convertValue(o, User.class);
        username = user.getUsername();
        model.addAttribute("username", username);
        return "index";
    }

//    //退出时跳转请求的地址
//    @GetMapping("/logout")
//    public String logout() {
////        HttpSession session = request.getSession();
////        //退出时应该情况session中的内容
////        session.setAttribute("user", null);
//        return "login";
//    }


//    @GetMapping("/toindex")
//    public String toindex() {
//        return "index";
//    }


//    @GetMapping("/")
//    public String start(Model model) {
//        String username = LoginExitController.username;
//        model.addAttribute("username", username);
//        return "index";
//    }

//    @GetMapping("/index")
//    public String index(Model model) {
//        String username = LoginExitController.username;
//        model.addAttribute("username", username);
//        return "index";
//    }


    /**
     * 将post请求转为get请求
     *
     * @return
     */
//    @GetMapping("/toindex")
//    public String toindex(Model model) {
//        String username = LoginExitController.username;
//        model.addAttribute("username", username);
//        return "index";
//    }

//    //对外暴露接口 提高代码的安全性
//    @Autowired
//    UserService userService;

//    @PostMapping("/log")
//    public String log(User user, Model model) {
//        //是根据表单中提交请求提交地址拿到 拿到的username和password
//        //再将这两个属性封装到user对象中
//        //所以必须跟提交的请求地址统一  否则拿不到对应的东西（user）
//        //例如:
//        //如果这个地址（“/tolog”）跟提交的请求地址（“/log”）不同  就会出现空值 （user=null）
//
//
//        //拿到服务器的缓存空间（session）
//        HttpSession session = request.getSession();
//        String path = "";
//        User loginuser = userService.findeByUser(user);
//        if (null != loginuser) {
//            model.addAttribute("error", "");
//            //在缓存空间（session）中添加一个动态的值  以键值对的形式  （k,v）
//            //调用时 根据k值进行调用
//            session.setAttribute("user", loginuser);
//
//            //登录成功后拿到名字的属性 （将它设为静态的全局变量）
//            username = loginuser.getUsername();
//            //把他放在后台中需要的时候进行调用（在调用时只能显示在需要返回的页面中 不能显示在所有页面）
//            model.addAttribute("username", username);
//            path = "redirect:/toindex";
//        } else {
//            model.addAttribute("error", "用户名或密码有误,请重新输入!");
//            path = "login";
//        }
//        return path;
//    }

//
//    @Autowired
//    HttpServletRequest request;
//
//

}
